package com.xcl.mapper;

import com.xcl.pojo.Centre;
import com.zzg.entity.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName CentreMapper
 * @Description 分流中心
 * @Author: xiaochaolei
 * @date 2021/7/2 14:58
 * @Version 1. 0
 */
@Mapper
public interface CentreMapper {
    /**
     * 得到所有状态为运输中的运单
     * @return 运单集合
     */
    public List<Centre> getAllCentre();

    /**
     * 分页查询运单状态为运单的信息
     * @param page 页码数
     * @param limit 条目数
     * @return 运单集合
     */
    public List<Centre> getAllCentreByLimit(@Param(value = "page")int page,@Param(value = "limit")int limit );


    /**
     * 高级查询
     * @param waybill_id 运单号
     * @param sub_name 到达分站
     * @param modeTransport 运输类型
     * @param TypeTransportation 运输方式
     * @param remark 地址
     * @param page 页码数
     * @param limit 条目数
     * @return 数据集合
     */
    public List<Centre> getCentreByWhere(@Param(value = "waybill_id") String waybill_id
            ,@Param(value = "sub_name") String sub_name
            ,@Param(value = "modeTransport") String modeTransport
            ,@Param(value = "TypeTransportation") String TypeTransportation
            ,@Param(value = "remark") String remark
            ,@Param(value = "page")int page
            ,@Param(value = "limit")int limit );


    /**
     * 多条修改
     * @param strings 数据集合
     * @return 影响行数
     */
    public int upteModification(@Param("str")String[] strings);


    /**
     * 根据id 查询货运信息
     * @param id 货运id
     * @return 货运信息
     */
    public Centre getFreightinformationTableByid(@Param("id") String id);


    /**
     * 车辆信息是否存在
     * @param id 车辆牌照
     * @return 车辆信息
     */
    public Driver existsDriver(@Param("id")String id);

    /**
     * 新增车辆信息
     * @param driver 车辆信息
     * @return 影响行数
     */
    public int insertDriver(@Param("driver")Driver driver);

    /**
     * 新增订单派送信息
     * @param delivery 派送信息
     * @return 影响行数
     */
    public int insertDelivery(@Param(value = "delivery")Delivery delivery);


    /**
     * 新增运单跟踪
     * @param tailafter 运单跟踪
     * @return 影响行数
     */
    public int insertTailafter(@Param(value ="tailafter" )Tailafter tailafter);

    /**
     * 新增费用明细
     * @param costbreakdown 费用明细
     * @return 影响行数
     */
    public int insertCostbreakdown(@Param(value = "costbreakdown") Costbreakdown costbreakdown);

    /**
     * 新增财务管理
     * @param finance 财务管理
     * @return 影响行数
     */
    public int insertFinance(@Param(value = "finance") Finance finance);


    /**
     * 根据id得到费用详细信息
     * @param id 费用id
     * @return 费用详细信息
     */
    public Costbreakdown getCostbreakdownById(@Param(value = "id") String id);

}
